---
title: SAIF.Business.Claim.Legal operations and processes
summary: Business and technical operations supported by the legal case-management domain.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-25
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# SAIF.Business.Claim.Legal operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog

| Operation | Intent | Trigger | Rules | Tables | SQL |
|---|---|---|---|---|---|
| [Manage legal case lifecycle](operations/manage-legal-case.md) | Create, update, and retrieve the legal-case header record and drive its status through the case lifecycle. | Presentation caller creates, edits, or saves a legal case | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [LEGAL_CASE](database-tables.md#legal_case), [CASE_STATUS_HISTORY](database-tables.md#case_status_history) | [DB-CLL-046](sql/SQL-046-legalcase.md), [DB-CLL-047](sql/SQL-047-legalcase.md), [DB-CLL-048](sql/SQL-048-legalcase.md) |
| [Manage case cost entries](operations/manage-case-cost.md) | Create, validate, update, and delete billing/cost line items associated with a legal case. | User adds or edits a cost line on a legal case | [BR-CLM-LGL-001](business-rules.md#br-clm-lgl-001-case-cost-date-ranges-must-be-valid), [BR-CLM-LGL-002](business-rules.md#br-clm-lgl-002-case-cost-entry-requires-a-payee), [BR-CLM-LGL-003](business-rules.md#br-clm-lgl-003-case-cost-entry-requires-service-code%2C-authorizer%2C-and-canceller), [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [CASE_COST](database-tables.md#case_cost) | [DB-CLL-001](sql/SQL-001-casecost.md), [DB-CLL-002](sql/SQL-002-casecost.md), [DB-CLL-003](sql/SQL-003-casecost.md) |
| [Manage appeals and appeal extensions](operations/manage-appeal.md) | Create, update, delete, and retrieve appeal records and their extensions for a legal case. | User files, updates, extends, or deletes an appeal | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [APPEAL](database-tables.md#appeal), [APPEAL_EXTENSION](database-tables.md#appeal_extension) | [DB-CLL-009](sql/SQL-009-appeal.md), [DB-CLL-010](sql/SQL-010-appeal.md), [DB-CLL-011](sql/SQL-011-appeal.md) |
| [Manage case notes](operations/manage-case-note.md) | Create, update, delete, and retrieve free-text case notes attached to a legal case. | User adds, edits, or deletes a case note | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [CASE_NOTE](database-tables.md#case_note) | [DB-CLL-016](sql/SQL-016-casenote.md), [DB-CLL-017](sql/SQL-017-casenote.md), [DB-CLL-018](sql/SQL-018-casenote.md) |
| [Manage case outcomes, issues, and staff](operations/manage-case-outcome.md) | Create, update, delete, and retrieve case outcome records along with their outcome-issue and outcome-staff detail rows. | User records the outcome of a hearing/board action | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [CASE_OUTCOME](database-tables.md#case_outcome), [OUTCOME_ISSUE](database-tables.md#outcome_issue), [OUTCOME_STAFF](database-tables.md#outcome_staff) | [DB-CLL-020](sql/SQL-020-caseoutcomecollection.md), [DB-CLL-021](sql/SQL-021-caseoutcome.md), [DB-CLL-022](sql/SQL-022-caseoutcome.md) |
| [Manage legal case evaluations](operations/manage-legal-case-evaluation.md) | Create, update, and retrieve legal-case evaluation records. | User records or updates a case evaluation | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | [LEGAL_CASE_EVALUATION](database-tables.md#legal_case_evaluation) | [DB-CLL-033](sql/SQL-033-legalcaseevaluation.md), [DB-CLL-034](sql/SQL-034-legalcaseevaluation.md), [DB-CLL-035](sql/SQL-035-legalcaseevaluation.md) |
| [Manage legal file locations](operations/manage-legal-file-location.md) | Track and update the physical/electronic file location of a legal case's documents. | File location changes (e.g., file sent to storage, attorney, or board) | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure), [BR-CLM-LGL-019](business-rules.md#br-clm-lgl-019-file-location-falls-back-to-a-sentinel-value-on-lookup-failure) | [LEGAL_FILE_LOCATION](database-tables.md#legal_file_location) | [DB-CLL-036](sql/SQL-036-legalfilelocation.md), [DB-CLL-037](sql/SQL-037-legalfilelocation.md), [DB-CLL-038](sql/SQL-038-legalfilelocation.md) |
| [Manage legal schedule and hearing calendar](operations/manage-legal-schedule.md) | Create, update, delete, and retrieve hearing/schedule entries for a legal case, and resolve secretary/ALJ display names. | User schedules, reschedules, or cancels a hearing | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure), [BR-CLM-LGL-025](business-rules.md#br-clm-lgl-025-consolidation-schedule-non-production-behavior-suppression) | [LEGAL_SCHEDULE](database-tables.md#legal_schedule-schedule-(proc-target-unclear)), [SCHEDULE](database-tables.md#schedule) | [DB-CLL-040](sql/SQL-040-legalschedule.md), [DB-CLL-041](sql/SQL-041-legalschedule.md), [DB-CLL-042](sql/SQL-042-legalschedule.md) |
| [Manage acknowledgements](operations/manage-acknowledge.md) | Update acknowledgement records confirming receipt of legal correspondence for a case. | User records receipt of an acknowledgement (e.g., from LegalApi) | [BR-CLM-LGL-005](business-rules.md#br-clm-lgl-005-non-single-row-crud-result-is-treated-as-a-failure) | — | [DB-CLL-008](sql/SQL-008-acknowledge.md) |
| [Manage mail dates and OAR flags](operations/manage-mail-date.md) | Stamp mail dates and order-and-award (OAR) flags on legal cases, individually or as a batch. | Order is mailed to a claimant/attorney, or a batch mail run executes | — | [LEGAL_CASE](database-tables.md#legal_case) | [DB-CLL-054](sql/SQL-054-maildate.md), [DB-CLL-055](sql/SQL-055-maildate.md) |
| [Manage case consolidation](operations/manage-case-consolidation.md) | Link one legal case to another as a consolidated case, cascading a case-status update. | User consolidates two or more legal cases | [BR-CLM-LGL-025](business-rules.md#br-clm-lgl-025-consolidation-schedule-non-production-behavior-suppression) | [CONSOLIDATED_CASE](database-tables.md#consolidated_case), [LEGAL_CASE](database-tables.md#legal_case), [CASE_STATUS_HISTORY](database-tables.md#case_status_history) | [DB-CLL-056](sql/SQL-056-consolidations.md), [DB-CLL-057](sql/SQL-057-consolidations.md) |
| [Create legal case file and assign document sequence](operations/create-file-and-doc-sequence.md) | Stamp a file-create date on a legal case and pull the next print-document sequence number for generated correspondence. | A new legal file is created for a case (typically as part of print/letter generation) | — | [LEGAL_CASE](database-tables.md#legal_case) | [DB-CLL-052](sql/SQL-052-createfile.md), [DB-CLL-053](sql/SQL-053-createfile.md) |
| [Manage other legal parties and request issues](operations/manage-other-legal-party-and-request-issue.md) | Retrieve employer/other-party associations and request-issue records tied to a legal case. | Case detail screens load request issues or other-party associations | — | [REQUEST_ISSUE](database-tables.md#request_issue), [LEGAL_CASE_EMPLOYER](database-tables.md#legal_case_employer) | [DB-CLL-028](sql/SQL-028-requestissue.md), [DB-CLL-029](sql/SQL-029-requestissue.md), [DB-CLL-030](sql/SQL-030-otherlegalparty.md) |
| [Manage hearing locations](operations/manage-hearing-location.md) | Maintain hearing-location reference data (create, retrieve, update, delete) and validate state codes, guarding delete when active schedule rows exist. | Reference-data maintenance user adds, edits, or deletes a hearing location | [BR-CLM-LGL-012](business-rules.md#br-clm-lgl-012-hearing-location-requires-valid-code%2C-name%2C-state%2C-and-city), [BR-CLM-LGL-013](business-rules.md#br-clm-lgl-013-hearing-location-cannot-be-deleted-while-referenced-by-schedule-rows) | [HEARING_LOCATION](database-tables.md#hearing_location), [SCHEDULE](database-tables.md#schedule), [ALL_STATES](database-tables.md#all_states) | [DB-CLL-032](sql/SQL-032-hearinglocationinfo.md), [DB-CLL-062](sql/SQL-062-hearinglocation.md), [DB-CLL-063](sql/SQL-063-hearinglocation.md) |
| [Manage attorney and legal-person reference data](operations/manage-attorney-and-legal-person.md) | Maintain attorney profiles, conflicts, policy assignments, schedules, legal persons, other firms, and rotation assignments, enforcing duplicate/referential-integrity checks. | Reference-data maintenance user adds, edits, or deletes attorney/firm/person records | [BR-CLM-LGL-006](business-rules.md#br-clm-lgl-006-attorney-policy-assignment-requires-a-valid-policy), [BR-CLM-LGL-007](business-rules.md#br-clm-lgl-007-attorney-policy-assignment-requires-a-primary-attorney), [BR-CLM-LGL-008](business-rules.md#br-clm-lgl-008-attorney-profile-requires-attorney%2C-type%2C-and-valid-date-range), [BR-CLM-LGL-009](business-rules.md#br-clm-lgl-009-duplicate-attorney-profile-rows-are-rejected), [BR-CLM-LGL-010](business-rules.md#br-clm-lgl-010-attorney-schedule-entry-requires-attorney%2C-reason%2C-and-duration), [BR-CLM-LGL-011](business-rules.md#br-clm-lgl-011-attorney-schedule-dates-must-be-valid-and-non-past), [BR-CLM-LGL-014](business-rules.md#br-clm-lgl-014-legal-person-requires-last-and-first-name), [BR-CLM-LGL-015](business-rules.md#br-clm-lgl-015-legal-person-cannot-be-deleted-while-referenced), [BR-CLM-LGL-016](business-rules.md#br-clm-lgl-016-legal-person-type-link-requires-person-and-type-code), [BR-CLM-LGL-017](business-rules.md#br-clm-lgl-017-other-firm-state-city-must-be-valid), [BR-CLM-LGL-018](business-rules.md#br-clm-lgl-018-out-of-town-rotation-assignment-dates-must-be-valid-and-non-past) | [ATTORNEY_CONFLICT](database-tables.md#attorney_conflict), [ATTORNEY_POLICY_ASSIGNMENT](database-tables.md#attorney_policy_assignment), [ATTORNEY_SCHEDULE](database-tables.md#attorney_schedule) | [DB-CLL-061](sql/SQL-061-legalperson.md), [DB-CLL-064](sql/SQL-064-otherfirm.md), [DB-CLL-065-104](sql/SQL-065-104-attorneyconflict,.md) |
| [Sync attorney schedule to Exchange calendar](operations/sync-attorney-schedule-to-exchange.md) | Push saved attorney schedule entries to the Exchange calendar via SAIF.Services.Exchange, suppressed outside Production. | clsAttorneySchedule.Save()/OnSave() completes a successful save in a Production environment | [BR-CLM-LGL-010](business-rules.md#br-clm-lgl-010-attorney-schedule-entry-requires-attorney%2C-reason%2C-and-duration), [BR-CLM-LGL-011](business-rules.md#br-clm-lgl-011-attorney-schedule-dates-must-be-valid-and-non-past), [BR-CLM-LGL-024](business-rules.md#br-clm-lgl-024-attorney-schedule-suppresses-non-production-exchange-sync) | [ATTORNEY_SCHEDULE](database-tables.md#attorney_schedule) | — |
| [Search legal cases](operations/search-legal-cases.md) | Validate search criteria by search type and retrieve matching legal cases via the LegalApi REST integration tier. | User submits a case search from the presentation layer | [BR-CLM-LGL-004](business-rules.md#br-clm-lgl-004-case-search-input-must-match-search-type-format) | — | — |
| [Print a legal letter](operations/print-legal-letter.md) | Assemble print-ready letter content (attorney names, worker info, policy names) primarily via LegalApi REST calls, resolve case number via LEGAL.vw_cases, and generate a print-document sequence number. | User requests a printed letter for a legal case | [BR-CLM-LGL-020](business-rules.md#br-clm-lgl-020-letter-hearing-date-renders-empty-rather-than-a-default-value), [BR-CLM-LGL-021](business-rules.md#br-clm-lgl-021-policy-short-name-truncation-and-special-case-substitution), [BR-CLM-LGL-022](business-rules.md#br-clm-lgl-022-state-entity-attorney-title-override), [BR-CLM-LGL-023](business-rules.md#br-clm-lgl-023-worker-attorney-display-fallback-chain) | [LEGAL.vw_cases](database-tables.md#legal.vw_cases) | [DB-CLL-058](sql/SQL-058-letterrequest.md), [DB-CLL-053](sql/SQL-053-createfile.md) |
| [Review attorney assignment calendar](operations/review-assignment-calendar.md) | Compute the next assignment result sequence and trigger an Oracle-side calendar review for attorney work assignment. | Scheduled/batch attorney-assignment review runs | — | — | [DB-CLL-059](sql/SQL-059-assignmentprocess.md), [DB-CLL-060](sql/SQL-060-quickcal.md) |
| [Resolve code-table lookups](operations/resolve-code-table-lookups.md) | Populate dropdown/code-table lookup lists (attorney types, case status, hearing locations, and related joined reference data) consumed across most domains in this library. | Any screen or business object requests dropdown/code-table data | — | [ADP_EMPLOYEE](database-tables.md#adp_employee), [ATTORNEY_PROFILE](database-tables.md#code-table-lookup-pattern), [LEGAL_PERSON](database-tables.md#legal_person) | [DB-CLL-CT-001](sql/SQL-CT001-mdlcodetables.md) |

## Process flow diagram

```mermaid
flowchart TD
	Start([Legal case created or updated]) --> Case[Manage legal case lifecycle]
	Case --> Sub1[Manage appeal / case cost / case note / case outcome]
	Sub1 --> Sub2[Manage legal schedule / hearing location]
	Sub2 --> Print[Print legal letter]
	Print --> EndOk([Case processed])
```

## Inherited operations and processes

Operations in this section originate from base classes provided by `SAIF.Framework.Core` (see [architecture.md](architecture.md#inherited-framework-behavior)). They are inherited, not implemented in this library.

### From `clsBusinessBase` `clsBusinessCollectionBase` (`SAIF.Framework.Core`)†

| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Standard Save lifecycle (BeforeInsert/BeforeUpdate/AfterCreate/BeforeDelete dispatch) | Routes CRUD calls to the correct `IBusinessCriteria` SQL property based on object state† | `clsBusinessBase` | `SAIF.Framework.Core` | [Manage legal case lifecycle](operations/manage-legal-case.md) and all other CRUD operations in this catalog |
| Retrieve-only SQL suppression | Suppresses Insert/Update/Delete SQL for retrieve-only criteria objects† | `clsRetrieveOnlyBusinessCriteria` | `SAIF.Framework.Core` | [Manage hearing location](operations/manage-hearing-location.md) (`clsHearingLocationInfo`), [Resolve code-table lookups](operations/resolve-code-table-lookups.md) |

> **Origin**: These operations are defined in `SAIF.Framework.Core` and inherited by every `clsBusinessBase`/`clsBusinessCollectionBase`/`clsRetrieveOnlyBusinessCriteria`-derived object in this library. Their generic lifecycle dispatch logic is not re-documented per operation; see `architecture.md` for the full inherited framework behavior list.

## Database interactions

| Operation | SQL | Tables | Type |
|---|---|---|---|
| [Manage legal case lifecycle](operations/manage-legal-case.md) | [DB-CLL-046](sql/SQL-046-legalcase.md), [DB-CLL-047](sql/SQL-047-legalcase.md), [DB-CLL-048](sql/SQL-048-legalcase.md), [DB-CLL-049](sql/SQL-049-legalcase.md), [DB-CLL-050](sql/SQL-050-legalcase.md), [DB-CLL-051](sql/SQL-051-legalcasecollection.md), [DB-CLL-057](sql/SQL-057-consolidations.md) | [LEGAL_CASE](database-tables.md#legal_case), [CASE_STATUS_HISTORY](database-tables.md#case_status_history) | Read/Write |
| [Manage case cost entries](operations/manage-case-cost.md) | [DB-CLL-001](sql/SQL-001-casecost.md), [DB-CLL-002](sql/SQL-002-casecost.md), [DB-CLL-003](sql/SQL-003-casecost.md), [DB-CLL-004](sql/SQL-004-casecost.md), [DB-CLL-006](sql/SQL-006-casecostcollection.md) | [CASE_COST](database-tables.md#case_cost) | Read/Write |
| [Manage appeals and appeal extensions](operations/manage-appeal.md) | [DB-CLL-009](sql/SQL-009-appeal.md), [DB-CLL-010](sql/SQL-010-appeal.md), [DB-CLL-011](sql/SQL-011-appeal.md), [DB-CLL-012](sql/SQL-012-appeal.md), [DB-CLL-013](sql/SQL-013-appealcollection.md), [DB-CLL-014](sql/SQL-014-appealextension.md), [DB-CLL-015](sql/SQL-015-appealextension.md) | [APPEAL](database-tables.md#appeal), [APPEAL_EXTENSION](database-tables.md#appeal_extension) | Read/Write |
| [Manage case notes](operations/manage-case-note.md) | [DB-CLL-016](sql/SQL-016-casenote.md), [DB-CLL-017](sql/SQL-017-casenote.md), [DB-CLL-018](sql/SQL-018-casenote.md), [DB-CLL-019](sql/SQL-019-casenote.md) | [CASE_NOTE](database-tables.md#case_note) | Read/Write |
| [Manage case outcomes, issues, and staff](operations/manage-case-outcome.md) | [DB-CLL-020](sql/SQL-020-caseoutcomecollection.md), [DB-CLL-021](sql/SQL-021-caseoutcome.md), [DB-CLL-022](sql/SQL-022-caseoutcome.md), [DB-CLL-023](sql/SQL-023-caseoutcome.md), [DB-CLL-024](sql/SQL-024-outcomeissue.md), [DB-CLL-025](sql/SQL-025-outcomeissue.md), [DB-CLL-026](sql/SQL-026-outcomestaff.md), [DB-CLL-027](sql/SQL-027-outcomestaff.md) | [CASE_OUTCOME](database-tables.md#case_outcome), [OUTCOME_ISSUE](database-tables.md#outcome_issue), [OUTCOME_STAFF](database-tables.md#outcome_staff) | Read/Write |
| [Manage legal case evaluations](operations/manage-legal-case-evaluation.md) | [DB-CLL-033](sql/SQL-033-legalcaseevaluation.md), [DB-CLL-034](sql/SQL-034-legalcaseevaluation.md), [DB-CLL-035](sql/SQL-035-legalcaseevaluation.md) | [LEGAL_CASE_EVALUATION](database-tables.md#legal_case_evaluation) | Read/Write |
| [Manage legal file locations](operations/manage-legal-file-location.md) | [DB-CLL-036](sql/SQL-036-legalfilelocation.md), [DB-CLL-037](sql/SQL-037-legalfilelocation.md), [DB-CLL-038](sql/SQL-038-legalfilelocation.md), [DB-CLL-039](sql/SQL-039-legalfilelocation.md) | [LEGAL_FILE_LOCATION](database-tables.md#legal_file_location) | Read/Write |
| [Manage legal schedule and hearing calendar](operations/manage-legal-schedule.md) | [DB-CLL-040](sql/SQL-040-legalschedule.md), [DB-CLL-041](sql/SQL-041-legalschedule.md), [DB-CLL-042](sql/SQL-042-legalschedule.md), [DB-CLL-043](sql/SQL-043-legalschedule.md), [DB-CLL-044](sql/SQL-044-legalschedule.md), [DB-CLL-045](sql/SQL-045-legalschedulecollection.md) | [LEGAL_SCHEDULE](database-tables.md#legal_schedule-schedule-(proc-target-unclear)), [SCHEDULE](database-tables.md#schedule) | Read/Write |
| [Manage acknowledgements](operations/manage-acknowledge.md) | [DB-CLL-008](sql/SQL-008-acknowledge.md) | — | Read/Write |
| [Manage mail dates and OAR flags](operations/manage-mail-date.md) | [DB-CLL-054](sql/SQL-054-maildate.md), [DB-CLL-055](sql/SQL-055-maildate.md) | [LEGAL_CASE](database-tables.md#legal_case) | Read/Write |
| [Manage case consolidation](operations/manage-case-consolidation.md) | [DB-CLL-056](sql/SQL-056-consolidations.md), [DB-CLL-057](sql/SQL-057-consolidations.md) | [CONSOLIDATED_CASE](database-tables.md#consolidated_case), [LEGAL_CASE](database-tables.md#legal_case), [CASE_STATUS_HISTORY](database-tables.md#case_status_history) | Read/Write |
| [Create legal case file and assign document sequence](operations/create-file-and-doc-sequence.md) | [DB-CLL-052](sql/SQL-052-createfile.md), [DB-CLL-053](sql/SQL-053-createfile.md) | [LEGAL_CASE](database-tables.md#legal_case) | Read |
| [Manage other legal parties and request issues](operations/manage-other-legal-party-and-request-issue.md) | [DB-CLL-028](sql/SQL-028-requestissue.md), [DB-CLL-029](sql/SQL-029-requestissue.md), [DB-CLL-030](sql/SQL-030-otherlegalparty.md), [DB-CLL-031](sql/SQL-031-otherlegalparty.md) | [REQUEST_ISSUE](database-tables.md#request_issue), [LEGAL_CASE_EMPLOYER](database-tables.md#legal_case_employer) | Read/Write |
| [Manage hearing locations](operations/manage-hearing-location.md) | [DB-CLL-032](sql/SQL-032-hearinglocationinfo.md), [DB-CLL-062](sql/SQL-062-hearinglocation.md), [DB-CLL-063](sql/SQL-063-hearinglocation.md), [DB-CLL-065-104](sql/SQL-065-104-attorneyconflict,.md) | [HEARING_LOCATION](database-tables.md#hearing_location), [SCHEDULE](database-tables.md#schedule), [ALL_STATES](database-tables.md#all_states) | Read/Write |
| [Manage attorney and legal-person reference data](operations/manage-attorney-and-legal-person.md) | [DB-CLL-061](sql/SQL-061-legalperson.md), [DB-CLL-064](sql/SQL-064-otherfirm.md), [DB-CLL-065-104](sql/SQL-065-104-attorneyconflict,.md) | [ATTORNEY_CONFLICT](database-tables.md#attorney_conflict), [ATTORNEY_POLICY_ASSIGNMENT](database-tables.md#attorney_policy_assignment), [ATTORNEY_SCHEDULE](database-tables.md#attorney_schedule), [ATTORNEY_WORKER_ASSIGNMENT](database-tables.md#attorney_worker_assignment), [LEGAL_PERSON](database-tables.md#legal_person), [LEGAL_PERSON_TYPE](database-tables.md#legal_person_type), [OTHER_FIRM](database-tables.md#other_firm), [OUT_OF_TOWN_ROTATION_ASSGN](database-tables.md#out_of_town_rotation_assgn) | Read/Write |
| [Print a legal letter](operations/print-legal-letter.md) | [DB-CLL-058](sql/SQL-058-letterrequest.md), [DB-CLL-053](sql/SQL-053-createfile.md) | [LEGAL.vw_cases](database-tables.md#legal.vw_cases) | Read |
| [Review attorney assignment calendar](operations/review-assignment-calendar.md) | [DB-CLL-059](sql/SQL-059-assignmentprocess.md), [DB-CLL-060](sql/SQL-060-quickcal.md) | — | Read |
| [Resolve code-table lookups](operations/resolve-code-table-lookups.md) | [DB-CLL-CT-001](sql/SQL-CT001-mdlcodetables.md) | [ADP_EMPLOYEE](database-tables.md#adp_employee), [ATTORNEY_PROFILE](database-tables.md#code-table-lookup-pattern), [LEGAL_PERSON](database-tables.md#legal_person), [LEGAL_PERSON_TYPE](database-tables.md#legal_person_type), [OTHER_FIRM](database-tables.md#other_firm), [HEARING_LOCATION](database-tables.md#hearing_location) | Read |

## Failure and edge-case behavior

- Validation failures across all `Manage *` operations return collected errors without persisting partial changes (standard framework `clsBusinessBase` behavior).
- `ValidateState` checks (used in [Manage hearing location](operations/manage-hearing-location.md) and [Manage attorney and legal-person reference data](operations/manage-attorney-and-legal-person.md)) build SQL via raw string concatenation rather than a bind parameter — flagged as a SQL-injection risk; see [business-rules.md](business-rules.md#flagged-findings).

## Stored procedure operations

Oracle source retrieval confirmed the following server-side operations in `pk80001_legalnet` and `pk80005_assignment`.

| Operation | Description | Source | Link |
|---|---|---|---|
| Manage appeal records and extensions | Creates, updates, retrieves, and deletes appeal rows and extension requests, including linked schedule cleanup during appeal deletion. | `pk80001_legalnet` | [Details](procedures/pk80001_legalnet.md#manage-appeal-records-and-extensions) |
| Maintain case notes and outcomes | Retrieves and persists case notes and case outcomes, and deletes dependent issue/staff rows before removing an outcome. | `pk80001_legalnet` | [Details](procedures/pk80001_legalnet.md#maintain-case-notes-and-outcomes) |
| Maintain hearing schedules and consolidated case state | Retrieves schedule rows, recalculates hearing pointers, and keeps consolidated-case status/hearing metadata aligned. | `pk80001_legalnet` | [Details](procedures/pk80001_legalnet.md#maintain-hearing-schedules-and-consolidated-case-state) |
| Stamp acknowledgements, file creation, and mail dates | Updates acknowledgement identifiers, file-location/file-create metadata, OAR flags, and mail or recon dates. | `pk80001_legalnet` | [Details](procedures/pk80001_legalnet.md#stamp-acknowledgements%2C-file-creation%2C-and-mail-dates) |
| Evaluate assignment conflicts and availability | Applies conflict, leave, holiday, location, and workload checks before a hearing assignment can succeed. | `pk80005_assignment` | [Details](procedures/pk80005_assignment.md#evaluate-assignment-conflicts-and-availability) |
| Execute attorney assignment | Attempts assignment, records result codes, updates the schedule row, and moves the legal case to `ASSGN` on success. | `pk80005_assignment` | [Details](procedures/pk80005_assignment.md#execute-attorney-assignment) |
| Assign rotation hearings | Selects pending unassigned hearing rows in active rotation coverage and evaluates the rotation attorney. | `pk80005_assignment` | [Details](procedures/pk80005_assignment.md#assign-rotation-hearings) |
| Review attorney assignment calendar | Returns attorney/location/schedule/load/vacation metrics and separate future schedule-conflict reporting. | `pk80005_assignment` | [Details](procedures/pk80005_assignment.md#review-attorney-assignment-calendar) |
| Publish assignment result feeds | Returns latest assignment results, assigned-hearing lists, and related follow-up data for operational review. | `pk80005_assignment` | [Details](procedures/pk80005_assignment.md#publish-assignment-result-feeds) |

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Business.Claim.Legal\LegalNet\` (all `.vb` files)
- `SAIF.Business.Claim.Legal\TableMaint\` (all `.vb` files)
- `SAIF.Business.Claim.Legal\mdlCodeTables.vb`
